home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue46 / packages / AppModuleLoadFormU.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-04-28  |  2.1 KB  |  90 lines

  1. unit AppModuleLoadFormU;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls;
  8.  
  9. type
  10.   TModuleLoadForm = class(TForm)
  11.     BtnOK: TButton;
  12.     GroupBox1: TGroupBox;
  13.     LstPackages: TListBox;
  14.     BtnAddPackage: TButton;
  15.     BtnRemovePackage: TButton;
  16.     DlgOpenPackage: TOpenDialog;
  17.     LblPackageFileName: TLabel;
  18.     procedure FormCreate(Sender: TObject);
  19.     procedure FormShow(Sender: TObject);
  20.     procedure BtnAddPackageClick(Sender: TObject);
  21.     procedure BtnRemovePackageClick(Sender: TObject);
  22.     procedure LstPackagesClick(Sender: TObject);
  23.   private
  24.     { Private declarations }
  25.   public
  26.     { Public declarations }
  27.   end;
  28.  
  29. var
  30.   ModuleLoadForm: TModuleLoadForm;
  31.  
  32. implementation
  33.  
  34. uses
  35.   AppSupportU, FileCtrl;
  36.  
  37. {$R *.DFM}
  38.  
  39. procedure TModuleLoadForm.FormCreate(Sender: TObject);
  40. {$ifdef Ver100} //Delphi 3 - packages have DPL extension
  41. var
  42.   S: String;
  43.   I: Integer;
  44. begin
  45.   S := DlgOpenPackage.Filter;
  46.   repeat
  47.     I := Pos('bpl', S);
  48.     if I > 0 then
  49.       S[I] := 'd' //Change the "bpl" to "dpl"
  50.   until I = 0;
  51.   DlgOpenPackage.Filter := S;
  52. {$else}
  53. begin
  54. {$endif}
  55. end;
  56.  
  57. procedure TModuleLoadForm.FormShow(Sender: TObject);
  58. begin
  59.   FormatPackagesAsDisplayList(LstPackages.Items)
  60. end;
  61.  
  62. procedure TModuleLoadForm.BtnAddPackageClick(Sender: TObject);
  63. begin
  64.   if DlgOpenPackage.Execute then
  65.   begin
  66.     LoadCustomPackage(DlgOpenPackage.FileName);
  67.     FormatPackagesAsDisplayList(LstPackages.Items)
  68.   end
  69. end;
  70.  
  71. procedure TModuleLoadForm.BtnRemovePackageClick(Sender: TObject);
  72. begin
  73.   if LstPackages.ItemIndex <> -1 then
  74.   begin
  75.     UnloadCustomPackage(HModule(LstPackages.Items.Objects[LstPackages.ItemIndex]));
  76.     FormatPackagesAsDisplayList(LstPackages.Items)
  77.   end
  78. end;
  79.  
  80. procedure TModuleLoadForm.LstPackagesClick(Sender: TObject);
  81. begin
  82.   //FileCtrl.MinimizeName inserts dots to shorten
  83.   //a long path name for display purposes
  84.   LblPackageFileName.Caption := MinimizeName(
  85.     TPackageRec(PackageList[LstPackages.ItemIndex]^).FileName,
  86.     Canvas, LstPackages.Width)
  87. end;
  88.  
  89. end.
  90.